Many datacenters today consist of large numbers of servers connected to large numbers of networks. The tasks of allocating, provisioning, and maintaining server-to-network connections, switches, and servers is difficult and often inefficient.
In many instances, especially with respect to large data centers or with respect to organizations with a large information technology (IT) group, there may be one group of network administrators for managing the network, and one group of server administrators for managing the servers and the applications running on the servers. Allocating, provisioning, and maintaining server-to-network connections is typically an ad hoc process which requires communication between both groups of administrators. For example, a trouble ticket is passed between the server administrator and the network administrator in order to arrive at an agreement about when, where, and how to configure and plug in a server into a network, and how the network should be configured, and how other network devices such as firewalls and load balancers should be changed in order to accommodate the new, or changed, server. This process is cumbersome and prone to error and misunderstandings, and can often lead to misconfigurations, loss of connectivity, and possibly to network outages. Also, there is not much management or accountability in this process. As a result, allocating, provisioning, and maintaining server-to-network connections becomes difficult, and inefficient, and creates a greater risk of network failures.
Similarly, configuration of a source, such as a server, requires cooperation between the network and server administrator. The server is usually manually configured through cooperation between the network and server administrator to determine and set attributes in the server. As a result, configuration of the server becomes inefficient, and creates a greater risk of failures due to communication errors or merely the mistyping of values.